FOR bcl=mn+1 TO max:<0x40,0x07> CLOSE bcl:NEXT:RETURN
refresh:
IF <0x43,0x07>(5)<2 THEN GOSUB info: GOSUB controls
RETURN
sweep:
WINDOW OUTPUT 2
CLS
CALL <0x23,0x07>(0):PRINT "Output Window Cleared"
ll=0
RETURN
arrow:
CALL <0x09,0x07>(1)
yp=3:yo=3
IF np=3 THEN xp=32 :ELSE xp=52
FOR x=0 TO np-1:LOCATE x*yo+yp,xp:PRINT " ":NEXT
IF box=4 OR box=5 OR box=6 OR np=3 THEN LOCATE p*yo+yp,xp:PRINT "<<"
RETURN
contents:
FOR x=1 TO tb:READ t$(x):NEXT:
DATA DTMF,MF,SILVER,BLUE,RED,GREEN,CLR,QUIT !,sine,sawtooth,square,1,2,3,4,5,6,7,8,9,*,0,#,1,2,3,4,5,6,7,8,9,0,A,B,C,D,2600,2750,3700,KP,ST,ST2P,ST3P,STP,0,1,nickel,dime,quarter33,quarter66,0,1,c/c,c/r,r/b,0,1
RETURN
parm:
d=3:n=2:l=1:m=1:f=0:dwd=1.1:dw=2600:dbd=1.7:tps=0
p=<0x43,0x07>(1)
IF p<7 THEN box=p:GOSUB cleanup:GOSUB dobox
IF p=7 THEN GOSUB sweep
IF p=8 THEN ok=0
IF p>8 AND p<12 THEN wf=p-8:GOSUB waveform
IF p>11 THEN b=p-11:ON box GOSUB dwbt,mwbt,sbt,bbt,rbt,gbt,oct:GOSUB out
RETURN
dwbt:
IF b=1 THEN a$="1":d1=697:d2=1209
IF b=2 THEN a$="2":d1=697:d2=1336
IF b=3 THEN a$="3":d1=697:d2=1477
IF b=4 THEN a$="4":d1=770:d2=1209
IF b=5 THEN a$="5":d1=770:d2=1336
IF b=6 THEN a$="6":d1=770:d2=1477
IF b=7 THEN a$="7":d1=852:d2=1209
IF b=8 THEN a$="8":d1=852:d2=1336
IF b=9 THEN a$="9":d1=852:d2=1477
IF b=10 THEN a$="*":d1=941:d2=1209
IF b=11 THEN a$="0":d1=941:d2=1336
IF b=12 THEN a$="#":d1=941:d2=1477
RETURN
mwbt:
f=4
IF b=1 THEN a$="1":d1=700:d2=900
IF b=2 THEN a$="2":d1=700:d2=1100
IF b=3 THEN a$="3":d1=900:d2=1100
IF b=4 THEN a$="4":d1=700:d2=1300
IF b=5 THEN a$="5":d1=900:d2=1300
IF b=6 THEN a$="6":d1=1100:d2=1300
IF b=7 THEN a$="7":d1=700: d2=1500
IF b=8 THEN a$="8":d1=900:d2=1500
IF b=9 THEN a$="9":d1=1100:d2=1500
IF b=10 THEN a$="0":d1=1300:d2=1500
RETURN
sbt:
IF b=1THEN a$="-Flash (A)-": d1=697: d2=1633:l=11
IF b=2 THEN a$="-Immediate (B)-": d1=770: d2=1633:l=15
IF b=3 THEN a$="-Priority (C)-":d1=852:d2=1633:l=14
IF b=4 THEN a$="-Routine (D)-":d1=941:d2=1633:l=13
RETURN
bbt:
np=2:p=tp
IF tp THEN d2=noise :ELSE d2=0
IF b=1 THEN a$="-2600 Hz-":d1=2600:d=10:l=9:f=4
IF b=2 THEN a$="-2750 Hz-":d1=2750:d=10:l=9:f=4
IF b=3 THEN a$="-3700 Hz-":d1=3700:d=10:l=9:f=4
IF b=4 THEN a$="-KP (KP1)-":d1=1100:d2=1700:d=5:l=10
IF b=5 THEN a$="-ST (ST)-":d1=1500:d2=1700:l=9
IF b=6 THEN a$="-ST3P (Code 11)-":d1=700:d2=1700:l=16
IF b=7 THEN a$="-STP (Code 12)-":d1=900:d2=1700:l=15
IF b=8 THEN a$="-ST2P (KP2)-":d1=1300:d2=1700:l=12
IF tp<1 THEN f=0
IF b=9 THEN tp=0:p=tp:GOSUB arrow:tps=1
IF b=10 THEN tp=1:p=tp:GOSUB arrow:tps=1
RETURN
rbt:
d1=1700:d2=2200:np=2:p=tp
IF b=1 THEN a$="-nickel-":d=1.2:m=1:l=8
IF b=2 THEN a$="-dime-":d=1.2:m=2:l=8
IF b=3 THEN a$="-quarter(33)-":d=0.6:m=5:l=13
IF b=4 THEN a$="-quarter(66)-":d=1.2:m=5:l=13
IF b=5 THEN tp=0:p=tp:GOSUB arrow:tps=1
IF b=6 THEN tp=1:p=tp:GOSUB arrow:tps=1
IF tp THEN d2=0:f=4
IF tp AND b>2 THEN d1=800:m=1
RETURN
gbt:
d=15:dwd=1.638:dbd=1.092:dw1=2600:dw2=0:np=2:p=tp
IF tp THEN dw1=900:dw2=1500:f=4
IF b=1 THEN a$="-coin collect-":d1=700:d2=1100:l=14
IF b=2 THEN a$="-coin return-":d1=1100:d2=1700:l=13